﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using SIF_2.DataLayer;
using SIF_2.BussinesLayer;
using System.Data.Objects;


namespace SIF_2
{
    public partial class fcfactura : Form
    {
        
        List<DetalleFactura> ListaDetalles = new List<DetalleFactura>();
        ContabilidadEntities ObjContext = new ContabilidadEntities();
        decimal total = 0;   
        public fcfactura()
        {
            InitializeComponent();
            TotalFinal.Visible = false;
            
        }
        
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        

        private void button1_Click(object sender, EventArgs e)
        {
            
            dataGridView1.DataSource = null;
            DAFacturas Factura = new DAFacturas();
            DetalleFactura Detalle  = new DetalleFactura();
            Detalle.Cantidad = Convert.ToInt32(TxtCantidad.Text);
            Detalle.IdProducto =(string) CmbCodigoProducto.SelectedValue.ToString();
            Detalle.IdFactura = Factura.SeleccionarUltimoId()+1;
            decimal Precio = (from pr in ObjContext.Productos where pr.Codigo == 
            CmbCodigoProducto.SelectedValue select pr.PrecioPorUnidad).First();
            string Nombre = (from pr in ObjContext.Productos where pr.Codigo ==
            CmbCodigoProducto.SelectedValue select pr.Nombre).First();
            Detalle.Importe = Convert.ToInt32(TxtCantidad.Text) * Precio;
            TotalFinal.Visible = true;
            total += Detalle.Importe;
            TotalFinal.Text = total.ToString();
            
            



            ListaDetalles.Add(Detalle);
            dataGridView1.RowCount += 1;
            dataGridView1[0, dataGridView1.RowCount - 1].Value = Detalle.IdProducto;
            dataGridView1[1, dataGridView1.RowCount - 1].Value = Nombre;
            dataGridView1[2, dataGridView1.RowCount - 1].Value = Precio;
            dataGridView1[3, dataGridView1.RowCount - 1].Value = Detalle.Cantidad;
            dataGridView1[4, dataGridView1.RowCount - 1].Value = Detalle.Importe;

        
            dataGridView1.Refresh();

        }
       
        private void button2_Click_1(object sender, EventArgs e)
        {
            string tipo="Contado";
            if (ChckTipoFactura.Checked)
            {
                tipo = "Credito";
                
            }
            DAFacturas Factura = new DAFacturas();
            Factura.addFacturas(Convert.ToInt32(CmbCodigoCliente.SelectedValue), total, DateTime.Now,tipo);
            DetalleFactura.addDetalles(ListaDetalles);
            MessageBox.Show("Factura Numero " + Factura.SeleccionarUltimoId() + " creada");

            this.Close();

        }

        private void fcfactura_Load(object sender, EventArgs e)
        {
            ProductosBL Producto = new ProductosBL();
          
            CmbCodigoProducto.DataSource = Producto.getProductos().ToList();
            CmbCodigoProducto.DisplayMember = "Nombre";
            CmbCodigoProducto.ValueMember = "Value";

            CustomerBL custumer = new CustomerBL();

            CmbCodigoCliente.DataSource = custumer.getClientes().ToList();
            CmbCodigoCliente.DisplayMember = "Codigo";
            CmbCodigoCliente.ValueMember = "Codigo";
            
            


           
        }


       
    }
}
